package es.ucm.fdi.healthpred.vista;

import java.awt.Color;
import java.awt.Cursor;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.util.HashMap;

import javax.swing.AbstractAction;
import javax.swing.Action;
import javax.swing.BorderFactory;
import javax.swing.ButtonGroup;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JComponent;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JSeparator;
import javax.swing.KeyStroke;
import javax.swing.WindowConstants;
import javax.swing.border.Border;

import com.jgoodies.forms.layout.ColumnSpec;
import com.jgoodies.forms.layout.FormLayout;
import com.jgoodies.forms.layout.RowSpec;
import com.jgoodies.forms.layout.Sizes;

import es.ucm.fdi.healthpred.controlador.Controlador;
import es.ucm.fdi.healthpred.controlador.utils.ConstantsString;
import es.ucm.fdi.healthpred.modelo.beans.CondicionesResidencia;
import es.ucm.fdi.healthpred.modelo.beans.CondicionesTrabajo;
import es.ucm.fdi.healthpred.modelo.beans.HabitosAlimenticios;
import es.ucm.fdi.healthpred.modelo.beans.HabitosHigienicos;
import es.ucm.fdi.healthpred.modelo.beans.HabitosPerjudiciales;

/**
 * Formulario para elegir los valores de los distintos par&aacute;metros para la
 * inferencia.
 * 
 * @since 1.0
 * 
 * @version 1.0
 * 
 * @author &Aacute;lvaro G&oacute;mez Porris
 * @author V&iacute;ctor L&oacute;pez Monte
 * @author Carlos Rodr&iacute;guez Colliga
 * 
 */
public class FormParamConsulta extends JDialog {

	private static final long serialVersionUID = 1L;

	private int alto;
	private int ancho;
	private JButton btnAceptar;
	private JComboBox<String> cmb1;
	private JComboBox<String> cmb2;
	private JComboBox<String> cmb3;
	private JComboBox<String> cmb4;
	private JComboBox<String> cmb5;
	private JComboBox<String> cmb6;
	private JComboBox<String> cmb7;
	private ButtonGroup grupo1 = new ButtonGroup();
	private ButtonGroup grupo2 = new ButtonGroup();
	private ModoFormParamConsulta modo;
	private JRadioButton rd1 = new JRadioButton();
	private JRadioButton rd2 = new JRadioButton();
	private JRadioButton rd3 = new JRadioButton();
	private JRadioButton rd4 = new JRadioButton();
	private JTextFieldDigitosFoco txtD1;
	private JTextFieldDigitosFoco txtD2;

	/**
	 * @param padre
	 * @param modo
	 */
	public FormParamConsulta(JDialog padre, ModoFormParamConsulta modo) {
		super(padre, true);
		this.modo = modo;
		init();
	}

	/**
	 * Inhabilita todos los componentes del formulario (excepto los botones).
	 */
	public void inhabilitaComponentes() {
		switch (modo) {
		case M_TRABAJO:
			rd1.setEnabled(false);
			rd2.setEnabled(false);
			rd3.setEnabled(false);
			rd4.setEnabled(false);
		case M_RESIDENCIA:
			txtD1.setEditable(false);
			txtD2.setEditable(false);
			cmb1.setEnabled(false);
			cmb2.setEnabled(false);
			cmb3.setEnabled(false);
			break;
		case M_ALIMENTO:
			txtD1.setEditable(false);
			cmb6.setEnabled(false);
			cmb7.setEnabled(false);
		case M_HIGIENE:
			cmb1.setEnabled(false);
			cmb2.setEnabled(false);
			cmb3.setEnabled(false);
			cmb4.setEnabled(false);
			cmb5.setEnabled(false);
			break;
		case M_PERJUDICIAL:
			cmb1.setEnabled(false);
			cmb2.setEnabled(false);
			rd1.setEnabled(false);
			rd2.setEnabled(false);
			rd3.setEnabled(false);
			rd4.setEnabled(false);
			txtD1.setEditable(false);
		}
		btnAceptar.setVisible(false);
	}

	/**
	 * @return Los datos de <i>Alimentos</i>, si estamos en ese modo.
	 * 
	 * @see HabitosAlimenticios
	 */
	public HashMap<String, Object> obtenerDatosFormAlimenticios() {
		HashMap<String, Object> datos = new HashMap<String, Object>();
		try {
			datos.put(ConstantsString.VARIABLESINFERENCIA.CEREALES, cmb1
					.getSelectedItem().toString());
			datos.put(ConstantsString.VARIABLESINFERENCIA.FRUTAS, cmb2
					.getSelectedItem().toString());
			datos.put(ConstantsString.VARIABLESINFERENCIA.GRASAS, cmb3
					.getSelectedItem().toString());
			datos.put(ConstantsString.VARIABLESINFERENCIA.CARNE, cmb4
					.getSelectedItem().toString());
			datos.put(ConstantsString.VARIABLESINFERENCIA.PESCADO, cmb5
					.getSelectedItem().toString());
			datos.put(ConstantsString.VARIABLESINFERENCIA.LACTEOS, cmb6
					.getSelectedItem().toString());
			datos.put(ConstantsString.VARIABLESINFERENCIA.AGUA, cmb7
					.getSelectedItem().toString());
			if (txtD1.getText().toString().equals(ConstantsString.VACIO))
				datos.put(ConstantsString.VARIABLESINFERENCIA.COMIDASDIA, "3");
			else
				datos.put(ConstantsString.VARIABLESINFERENCIA.COMIDASDIA, txtD1
						.getText().toString());

			return datos;
		} catch (Exception e) {
			return datos;
		}
	}

	/**
	 * @return Los datos de <i>Higiene</i>, si estamos en ese modo.
	 * 
	 * @see HabitosHigienicos
	 */
	public HashMap<String, Object> obtenerDatosFormHigienicos() {
		HashMap<String, Object> datos = new HashMap<String, Object>();
		try {
			datos.put(ConstantsString.VARIABLESINFERENCIA.CORPORAL, cmb1
					.getSelectedItem().toString());
			datos.put(ConstantsString.VARIABLESINFERENCIA.BUCAL, cmb2
					.getSelectedItem().toString());
			datos.put(ConstantsString.VARIABLESINFERENCIA.VESTIMENTA, cmb3
					.getSelectedItem().toString());
			datos.put(ConstantsString.VARIABLESINFERENCIA.ALIMENTOS, cmb4
					.getSelectedItem().toString());
			datos.put(ConstantsString.VARIABLESINFERENCIA.VIVIENDA, cmb5
					.getSelectedItem().toString());

			return datos;
		} catch (Exception e) {
			return datos;
		}
	}

	/**
	 * @return Los datos de <i>Perjudiciales</i>, si estamos en ese modo.
	 * 
	 * @see HabitosPerjudiciales
	 */
	public HashMap<String, Object> obtenerDatosFormPerjudiciales() {
		HashMap<String, Object> datos = new HashMap<String, Object>();
		String toxicos = cmb1.getSelectedItem().toString();
		datos.put(ConstantsString.VARIABLESINFERENCIA.TOXICOS,
				toxicos.replaceAll(" ", "_"));
		if (rd1.isSelected()) {
			datos.put(ConstantsString.VARIABLESINFERENCIA.SEDENTARISMO,
					ConstantsString.SI);
		} else {
			datos.put(ConstantsString.VARIABLESINFERENCIA.SEDENTARISMO,
					ConstantsString.NO);
		}
		if (rd3.isSelected()) {
			datos.put(ConstantsString.VARIABLESINFERENCIA.POSTURALES,
					ConstantsString.SI);
		} else {
			datos.put(ConstantsString.VARIABLESINFERENCIA.POSTURALES,
					ConstantsString.NO);
		}
		datos.put(ConstantsString.VARIABLESINFERENCIA.ESTRES, cmb2
				.getSelectedItem().toString());
		if (txtD1.getText().toString().equals(ConstantsString.VACIO)) {
			datos.put(ConstantsString.VARIABLESINFERENCIA.SUENYO, "8");
		} else {
			datos.put(ConstantsString.VARIABLESINFERENCIA.SUENYO, txtD1
					.getText().toString());
		}
		return datos;
	}

	/**
	 * @return Los datos de <i>Residencia</i>, si estamos en ese modo.
	 * 
	 * @see CondicionesResidencia
	 */
	public HashMap<String, Object> obtenerDatosFormResidencia() {
		HashMap<String, Object> datos = new HashMap<String, Object>();
		try {
			if (txtD1.getText().toString().equals(ConstantsString.VACIO))
				datos.put(ConstantsString.VARIABLESINFERENCIA.TEMPERATURA_R,
						"21");
			else
				datos.put(ConstantsString.VARIABLESINFERENCIA.TEMPERATURA_R,
						txtD1.getText().toString());
			if (txtD2.getText().toString().equals(ConstantsString.VACIO))
				datos.put(ConstantsString.VARIABLESINFERENCIA.SOL_R, "9");
			else
				datos.put(ConstantsString.VARIABLESINFERENCIA.SOL_R, txtD2
						.getText().toString());
			datos.put(ConstantsString.VARIABLESINFERENCIA.HUMEDAD_R, cmb1
					.getSelectedItem().toString());
			datos.put(ConstantsString.VARIABLESINFERENCIA.AIRE_R, cmb2
					.getSelectedItem().toString());
			datos.put(ConstantsString.VARIABLESINFERENCIA.RUIDO_R, cmb3
					.getSelectedItem().toString());

			return datos;
		} catch (Exception e) {
			return datos;
		}
	}

	/**
	 * @return Los datos de <i>Trabajo</i>, si estamos en ese modo.
	 * 
	 * @see CondicionesTrabajo
	 */
	public HashMap<String, Object> obtenerDatosFormTrabajo() {
		HashMap<String, Object> datos = new HashMap<String, Object>();
		try {
			if (txtD1.getText().toString().equals(ConstantsString.VACIO))
				datos.put(ConstantsString.VARIABLESINFERENCIA.TEMPERATURA_T,
						"21");
			else
				datos.put(ConstantsString.VARIABLESINFERENCIA.TEMPERATURA_T,
						txtD1.getText().toString());
			if (txtD2.getText().toString().equals(ConstantsString.VACIO))
				datos.put(ConstantsString.VARIABLESINFERENCIA.SOL_T, "9");
			else
				datos.put(ConstantsString.VARIABLESINFERENCIA.SOL_T, txtD2
						.getText().toString());
			datos.put(ConstantsString.VARIABLESINFERENCIA.HUMEDAD_T, cmb1
					.getSelectedItem().toString());
			datos.put(ConstantsString.VARIABLESINFERENCIA.AIRE_T, cmb2
					.getSelectedItem().toString());
			datos.put(ConstantsString.VARIABLESINFERENCIA.RUIDO_T, cmb3
					.getSelectedItem().toString());
			if (rd1.isSelected())
				datos.put(ConstantsString.VARIABLESINFERENCIA.VERTIDOS,
						ConstantsString.SI);
			else
				datos.put(ConstantsString.VARIABLESINFERENCIA.VERTIDOS,
						ConstantsString.NO);
			if (rd3.isSelected())
				datos.put(ConstantsString.VARIABLESINFERENCIA.ESFUERZO,
						ConstantsString.SI);
			else
				datos.put(ConstantsString.VARIABLESINFERENCIA.ESFUERZO,
						ConstantsString.NO);

			return datos;

		} catch (Exception e) {
			return datos;
		}
	}

	/* PRIVADOS */
	private void btnAceptarActionPerformed(ActionEvent e) {
		if (modo.equals(ModoFormParamConsulta.M_RESIDENCIA))
			Controlador.actualizaDatosFormParamConsulta(
					obtenerDatosFormResidencia(), modo);
		else if (modo.equals(ModoFormParamConsulta.M_TRABAJO))
			Controlador.actualizaDatosFormParamConsulta(
					obtenerDatosFormTrabajo(), modo);
		else if (modo.equals(ModoFormParamConsulta.M_ALIMENTO))
			Controlador.actualizaDatosFormParamConsulta(
					obtenerDatosFormAlimenticios(), modo);
		else if (modo.equals(ModoFormParamConsulta.M_HIGIENE))
			Controlador.actualizaDatosFormParamConsulta(
					obtenerDatosFormHigienicos(), modo);
		else if (modo.equals(ModoFormParamConsulta.M_PERJUDICIAL))
			Controlador.actualizaDatosFormParamConsulta(
					obtenerDatosFormPerjudiciales(), modo);

		Controlador.cierraVistaParams(modo);
	}

	private void btnCancelarActionPerformed(ActionEvent e) {
		Controlador.cierraVistaParams(modo);
	}

	private void init() {
		FormLayout layout = new FormLayout();

		JLabel lbl1 = new JLabel();
		JLabel lbl2 = new JLabel();
		JLabel lbl3 = new JLabel();
		JLabel lbl4 = new JLabel();
		JLabel lbl5 = new JLabel();
		JLabel lbl6 = new JLabel();
		JLabel lbl7 = new JLabel();
		JLabel lbl8 = new JLabel();

		ancho = 280;
		alto = 270;

		if (modo == ModoFormParamConsulta.M_ALIMENTO) {
			layout.appendColumn(new ColumnSpec(ColumnSpec.CENTER, Sizes
					.bounded(Sizes.PREFERRED, Sizes.constant("180px", false),
							Sizes.constant("180px", false)), 0));
		} else {
			layout.appendColumn(new ColumnSpec(ColumnSpec.CENTER, Sizes
					.bounded(Sizes.PREFERRED, Sizes.constant("150px", false),
							Sizes.constant("150px", false)), 0));
		}

		layout.appendColumn(new ColumnSpec(ColumnSpec.CENTER, Sizes.bounded(
				Sizes.PREFERRED, Sizes.constant("15px", false),
				Sizes.constant("15px", false)), 0));

		if (modo == ModoFormParamConsulta.M_ALIMENTO) {
			layout.appendColumn(new ColumnSpec(ColumnSpec.CENTER, Sizes
					.bounded(Sizes.PREFERRED, Sizes.constant("90px", false),
							Sizes.constant("90px", false)), 0));
		} else {
			layout.appendColumn(new ColumnSpec(ColumnSpec.CENTER, Sizes
					.bounded(Sizes.PREFERRED, Sizes.constant("100px", false),
							Sizes.constant("100px", false)), 0));
		}

		layout.appendColumn(new ColumnSpec(ColumnSpec.CENTER, Sizes.bounded(
				Sizes.PREFERRED, Sizes.constant("15px", false),
				Sizes.constant("15px", false)), 0));

		for (int i = 0; i < 6; i++) {
			layout.appendRow(new RowSpec(RowSpec.FILL, Sizes.bounded(
					Sizes.PREFERRED, Sizes.constant("40px", false),
					Sizes.constant("40px", false)), 0));
		}

		if ((modo == ModoFormParamConsulta.M_ALIMENTO)
				|| (modo == ModoFormParamConsulta.M_TRABAJO)) {
			alto = 350;
			layout.appendRow(new RowSpec(RowSpec.FILL, Sizes.bounded(
					Sizes.PREFERRED, Sizes.constant("40px", false),
					Sizes.constant("40px", false)), 0));
			layout.appendRow(new RowSpec(RowSpec.FILL, Sizes.bounded(
					Sizes.PREFERRED, Sizes.constant("40px", false),
					Sizes.constant("40px", false)), 0));
			if (modo == ModoFormParamConsulta.M_ALIMENTO) {
				alto = 390;
				layout.appendRow(new RowSpec(RowSpec.FILL, Sizes.bounded(
						Sizes.PREFERRED, Sizes.constant("40px", false),
						Sizes.constant("40px", false)), 0));
			}
		}
		getContentPane().setLayout(layout);
		Border borde = BorderFactory
				.createLineBorder(new Color(216, 40, 44), 1);
		((JPanel) getContentPane()).setBorder(borde);
		setResizable(false);
		setDefaultCloseOperation(WindowConstants.HIDE_ON_CLOSE);
		setLocation(100, 100);

		grupo1.add(rd1);
		grupo1.add(rd2);

		grupo2.add(rd3);
		grupo2.add(rd4);

		btnAceptar = new JButton("Aceptar");
		btnAceptar.setToolTipText("Aceptar");
		btnAceptar.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
		btnAceptar.setIcon(new ImageIcon(FormParamConsulta.class
				.getClassLoader().getResource("icono_aceptar_20x20.png")));
		btnAceptar.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				btnAceptarActionPerformed(e);
			}
		});

		JButton btnCancelar = new JButton("Cancelar");
		btnCancelar.setToolTipText("Cancelar");
		btnCancelar.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
		btnCancelar.setIcon(new ImageIcon(FormParamConsulta.class
				.getClassLoader().getResource("icono_cancelar_20x20.png")));
		btnCancelar.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				btnCancelarActionPerformed(e);
			}
		});

		getContentPane().add(lbl1, "1, 1, right, fill");
		getContentPane().add(lbl2, "1, 2, right, fill");
		getContentPane().add(lbl3, "1, 3, right, fill");
		getContentPane().add(lbl4, "1, 4, right, fill");
		getContentPane().add(lbl5, "1, 5, right, fill");

		if ((modo == ModoFormParamConsulta.M_RESIDENCIA)
				|| (modo == ModoFormParamConsulta.M_TRABAJO)) {
			setTitle("Condiciones de residencia");
			lbl1.setText("Temperatura media");
			lbl2.setText("Humedad");
			lbl3.setText("Horas de sol");
			lbl4.setText("Calidad del aire");
			lbl5.setText("Contaminaci\u00f3n ac\u00fastica");
			cmb1 = new JComboBox<String>();
			cmb1.addItem("Nulo");
			cmb1.addItem("Bajo");
			cmb1.addItem("Medio");
			cmb1.addItem("Alto");
			cmb2 = new JComboBox<String>();
			cmb2.addItem("Nulo");
			cmb2.addItem("Bajo");
			cmb2.addItem("Medio");
			cmb2.addItem("Alto");
			cmb3 = new JComboBox<String>();
			cmb3.addItem("Nulo");
			cmb3.addItem("Bajo");
			cmb3.addItem("Medio");
			cmb3.addItem("Alto");
			txtD1 = new JTextFieldDigitosFoco();
			txtD1.setText(String.valueOf(20));
			txtD2 = new JTextFieldDigitosFoco();
			txtD2.setText(String.valueOf(10));
			if (modo == ModoFormParamConsulta.M_TRABAJO) {
				setTitle("Condiciones de trabajo");
				lbl6.setText("Vertidos");
				lbl7.setText("Esfuerzo f\u00edsico");
				rd1.setText("S\u00cd");
				rd2.setText("NO");
				rd2.setSelected(true);
				rd3.setText("S\u00cd");
				rd4.setText("NO");
				rd4.setSelected(true);
				getContentPane().add(lbl6, "1, 6, right, fill");
				getContentPane().add(lbl7, "1, 7, right, fill");
				getContentPane().add(rd1, "3, 6, left, center");
				getContentPane().add(rd2, "3, 6, right, center");
				getContentPane().add(rd3, "3, 7, left, center");
				getContentPane().add(rd4, "3, 7, right, center");
				getContentPane().add(btnAceptar, "1, 8, right, center");
				getContentPane().add(new JSeparator(), "2, 8, fill, center");
				getContentPane().add(btnCancelar, "3, 8, left, center");
			} else {
				getContentPane().add(btnAceptar, "1, 6, right, center");
				getContentPane().add(new JSeparator(), "2, 6, fill, center");
				getContentPane().add(btnCancelar, "3, 6, left, center");
			}
			getContentPane().add(txtD1, "3, 1, fill, center");
			getContentPane().add(cmb1, "3, 2, fill, center");
			getContentPane().add(txtD2, "3, 3, fill, center");
			getContentPane().add(cmb2, "3, 4, fill, center");
			getContentPane().add(cmb3, "3, 5, fill, center");
		} else if (modo == ModoFormParamConsulta.M_ALIMENTO) {
			ancho = 310;
			setTitle("H\u00e1bitos alimenticios");
			lbl1.setText("Consumo de cereales/f\u00e9culas");
			lbl2.setText("Consumo de frutas/verduras");
			lbl3.setText("Consumo de grasas/l\u00edpidos");
			lbl4.setText("Consumo de carne");
			lbl5.setText("Consumo de pescado");
			lbl6.setText("Consumo de l\u00e1cteos/huevos");
			lbl7.setText("Consumo de agua");
			lbl8.setText("N\u00famero de comidas diarias");
			cmb1 = new JComboBox<String>();
			cmb1.addItem("Nulo");
			cmb1.addItem("Bajo");
			cmb1.addItem("Medio");
			cmb1.addItem("Alto");
			cmb2 = new JComboBox<String>();
			cmb2.addItem("Nulo");
			cmb2.addItem("Bajo");
			cmb2.addItem("Medio");
			cmb2.addItem("Alto");
			cmb3 = new JComboBox<String>();
			cmb3.addItem("Nulo");
			cmb3.addItem("Bajo");
			cmb3.addItem("Medio");
			cmb3.addItem("Alto");
			cmb4 = new JComboBox<String>();
			cmb4.addItem("Nulo");
			cmb4.addItem("Bajo");
			cmb4.addItem("Medio");
			cmb4.addItem("Alto");
			cmb5 = new JComboBox<String>();
			cmb5.addItem("Nulo");
			cmb5.addItem("Bajo");
			cmb5.addItem("Medio");
			cmb5.addItem("Alto");
			cmb6 = new JComboBox<String>();
			cmb6.addItem("Nulo");
			cmb6.addItem("Bajo");
			cmb6.addItem("Medio");
			cmb6.addItem("Alto");
			cmb7 = new JComboBox<String>();
			cmb7.addItem("Nulo");
			cmb7.addItem("Bajo");
			cmb7.addItem("Medio");
			cmb7.addItem("Alto");
			txtD1 = new JTextFieldDigitosFoco();
			txtD1.setText(String.valueOf(3));
			getContentPane().add(lbl6, "1, 6, right, fill");
			getContentPane().add(lbl7, "1, 7, right, fill");
			getContentPane().add(lbl8, "1, 8, right, fill");
			getContentPane().add(cmb1, "3, 1, fill, center");
			getContentPane().add(cmb2, "3, 2, fill, center");
			getContentPane().add(cmb3, "3, 3, fill, center");
			getContentPane().add(cmb4, "3, 4, fill, center");
			getContentPane().add(cmb5, "3, 5, fill, center");
			getContentPane().add(cmb6, "3, 6, fill, center");
			getContentPane().add(cmb7, "3, 7, fill, center");
			getContentPane().add(txtD1, "3, 8, fill, center");
			getContentPane().add(btnAceptar, "1, 9, right, center");
			getContentPane().add(new JSeparator(), "2, 9, fill, center");
			getContentPane().add(btnCancelar, "3, 9, left, center");
		} else if (modo == ModoFormParamConsulta.M_HIGIENE) {
			setTitle("H\u00e1bitos higi\u00e9nicos");
			lbl1.setText("Higiene corporal");
			lbl2.setText("Higiene bucal");
			lbl3.setText("Higiene de vestimenta");
			lbl4.setText("Higiene alimentaria");
			lbl5.setText("Higiene de vivienda");
			cmb1 = new JComboBox<String>();
			cmb1.addItem("Nulo");
			cmb1.addItem("Bajo");
			cmb1.addItem("Medio");
			cmb1.addItem("Alto");
			cmb2 = new JComboBox<String>();
			cmb2.addItem("Nulo");
			cmb2.addItem("Bajo");
			cmb2.addItem("Medio");
			cmb2.addItem("Alto");
			cmb3 = new JComboBox<String>();
			cmb3.addItem("Nulo");
			cmb3.addItem("Bajo");
			cmb3.addItem("Medio");
			cmb3.addItem("Alto");
			cmb4 = new JComboBox<String>();
			cmb4.addItem("Nulo");
			cmb4.addItem("Bajo");
			cmb4.addItem("Medio");
			cmb4.addItem("Alto");
			cmb5 = new JComboBox<String>();
			cmb5.addItem("Nulo");
			cmb5.addItem("Bajo");
			cmb5.addItem("Medio");
			cmb5.addItem("Alto");
			getContentPane().add(cmb1, "3, 1, fill, center");
			getContentPane().add(cmb2, "3, 2, fill, center");
			getContentPane().add(cmb3, "3, 3, fill, center");
			getContentPane().add(cmb4, "3, 4, fill, center");
			getContentPane().add(cmb5, "3, 5, fill, center");
			getContentPane().add(btnAceptar, "1, 6, right, center");
			getContentPane().add(new JSeparator(), "2, 6, fill, center");
			getContentPane().add(btnCancelar, "3, 6, left, center");
		} else {
			setTitle("H\u00e1bitos perjudiciales");
			lbl1.setText("T\u00f3xicos");
			lbl2.setText("Sedentarismo");
			lbl3.setText("Defectos posturales");
			lbl4.setText("Nivel de estr\u00e9s");
			lbl5.setText("Horas de sue\u00f1o al d\u00eda");
			cmb1 = new JComboBox<String>();
			cmb1.addItem("Ninguno");
			cmb1.addItem("Alcohol");
			cmb1.addItem("Tabaco");
			cmb1.addItem("Drogas");
			cmb1.addItem("Alcohol y tabaco");
			cmb1.addItem("Alcohol y drogas");
			cmb1.addItem("Tabaco y drogas");
			cmb1.addItem("Todos");
			rd1.setText("S\u00cd");
			rd2.setText("NO");
			rd2.setSelected(true);
			rd3.setText("S\u00cd");
			rd4.setText("NO");
			rd4.setSelected(true);
			cmb2 = new JComboBox<String>();
			cmb2.addItem("Nulo");
			cmb2.addItem("Bajo");
			cmb2.addItem("Medio");
			cmb2.addItem("Alto");
			txtD1 = new JTextFieldDigitosFoco();
			txtD1.setText(String.valueOf(8));
			getContentPane().add(cmb1, "3, 1, fill, center");
			getContentPane().add(rd1, "3, 2, left, center");
			getContentPane().add(rd2, "3, 2, right, center");
			getContentPane().add(rd3, "3, 3, left, center");
			getContentPane().add(rd4, "3, 3, right, center");
			getContentPane().add(cmb2, "3, 4, fill, center");
			getContentPane().add(txtD1, "3, 5, fill, center");
			getContentPane().add(btnAceptar, "1, 6, right, center");
			getContentPane().add(new JSeparator(), "2, 6, fill, center");
			getContentPane().add(btnCancelar, "3, 6, left, center");
		}
		setSize(ancho, alto);

		// Cierre del JDialog con la tecla ESC
		KeyStroke escape = KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0, false);
		Action escapeAction = new AbstractAction() {

			private static final long serialVersionUID = 1L;

			public void actionPerformed(ActionEvent e) {
				Controlador.cierraVistaParams(modo);
			}
		};
		getRootPane().getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(
				escape, "ESCAPE");
		getRootPane().getActionMap().put("ESCAPE", escapeAction);
	}

}
